{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Use scikit-learn's built-in *make_classification* method to generate syntehtic classificiation data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_classification"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### I used two informative features (Temp, Humidity) and one redundant feature 'Crime'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "X,y = make_classification(n_samples=35040,n_classes=2,n_features=3,n_informative=2,n_redundant=1,\n",
    "                           weights=[0.999,0.001],class_sep=1.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "df=pd.DataFrame(data=X,columns=['Temp','Humidity','Crime'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['y']=y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['Temp']=df['Temp']-min(df['Temp'])\n",
    "maxt=max(df['Temp'])\n",
    "df['Temp']=90*df['Temp']/maxt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df['Humidity']=df['Humidity']-min(df['Humidity'])\n",
    "maxh=max(df['Humidity'])\n",
    "df['Humidity']=100*df['Humidity']/maxh"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['Crime']=df['Crime']-min(df['Crime'])\n",
    "maxc=max(df['Crime'])\n",
    "df['Crime']=10*df['Crime']/maxc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000002A1F3DE1358>]], dtype=object)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f3dcae10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.hist('Temp')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000002A1F5ECCE10>]], dtype=object)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f3dcad68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.hist('Humidity')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000002A1F63B6320>]], dtype=object)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f63713c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.hist('Crime')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Take a sum on the Boolean array with df['y']==1 to count the number of positive examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "208"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(df['y']==1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** That means only 223 responses out of 35040 samples are positive **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Temp</th>\n",
       "      <th>Humidity</th>\n",
       "      <th>Crime</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>69.911963</td>\n",
       "      <td>46.390916</td>\n",
       "      <td>2.534920</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20.128522</td>\n",
       "      <td>51.172110</td>\n",
       "      <td>6.095530</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>19.693976</td>\n",
       "      <td>40.932844</td>\n",
       "      <td>6.777327</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>30.870842</td>\n",
       "      <td>55.299898</td>\n",
       "      <td>5.000659</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>58.606409</td>\n",
       "      <td>43.638177</td>\n",
       "      <td>3.586468</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>26.217064</td>\n",
       "      <td>65.517227</td>\n",
       "      <td>4.715108</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>56.447058</td>\n",
       "      <td>48.694281</td>\n",
       "      <td>3.434018</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>26.279376</td>\n",
       "      <td>65.724995</td>\n",
       "      <td>4.697123</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>21.143146</td>\n",
       "      <td>51.311586</td>\n",
       "      <td>6.007967</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>18.781879</td>\n",
       "      <td>42.698414</td>\n",
       "      <td>6.736358</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Temp   Humidity     Crime  y\n",
       "0  69.911963  46.390916  2.534920  0\n",
       "1  20.128522  51.172110  6.095530  0\n",
       "2  19.693976  40.932844  6.777327  0\n",
       "3  30.870842  55.299898  5.000659  0\n",
       "4  58.606409  43.638177  3.586468  0\n",
       "5  26.217064  65.517227  4.715108  0\n",
       "6  56.447058  48.694281  3.434018  0\n",
       "7  26.279376  65.724995  4.697123  0\n",
       "8  21.143146  51.311586  6.007967  0\n",
       "9  18.781879  42.698414  6.736358  0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Temp</th>\n",
       "      <th>Humidity</th>\n",
       "      <th>Crime</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>35040.000000</td>\n",
       "      <td>35040.000000</td>\n",
       "      <td>35040.000000</td>\n",
       "      <td>35040.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>37.361268</td>\n",
       "      <td>54.390121</td>\n",
       "      <td>4.554580</td>\n",
       "      <td>0.005936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>14.222773</td>\n",
       "      <td>11.484604</td>\n",
       "      <td>1.344826</td>\n",
       "      <td>0.076818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>25.933047</td>\n",
       "      <td>46.659770</td>\n",
       "      <td>3.594520</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>34.015027</td>\n",
       "      <td>54.381585</td>\n",
       "      <td>4.577618</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>48.535355</td>\n",
       "      <td>62.111284</td>\n",
       "      <td>5.530735</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>90.000000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               Temp      Humidity         Crime             y\n",
       "count  35040.000000  35040.000000  35040.000000  35040.000000\n",
       "mean      37.361268     54.390121      4.554580      0.005936\n",
       "std       14.222773     11.484604      1.344826      0.076818\n",
       "min        0.000000      0.000000      0.000000      0.000000\n",
       "25%       25.933047     46.659770      3.594520      0.000000\n",
       "50%       34.015027     54.381585      4.577618      0.000000\n",
       "75%       48.535355     62.111284      5.530735      0.000000\n",
       "max       90.000000    100.000000     10.000000      1.000000"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Logistic Regression undersampling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "from sklearn.metrics import classification_report"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Under-sampling the negative class to limited number"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Temp</th>\n",
       "      <th>Humidity</th>\n",
       "      <th>Crime</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1008.000000</td>\n",
       "      <td>1008.000000</td>\n",
       "      <td>1008.000000</td>\n",
       "      <td>1008.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>36.854106</td>\n",
       "      <td>55.607657</td>\n",
       "      <td>4.516875</td>\n",
       "      <td>0.206349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>14.022719</td>\n",
       "      <td>12.461692</td>\n",
       "      <td>1.347383</td>\n",
       "      <td>0.404885</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>9.234639</td>\n",
       "      <td>6.753112</td>\n",
       "      <td>0.881205</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>25.630422</td>\n",
       "      <td>46.964145</td>\n",
       "      <td>3.507509</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>33.154437</td>\n",
       "      <td>55.707893</td>\n",
       "      <td>4.528937</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>48.634513</td>\n",
       "      <td>63.714781</td>\n",
       "      <td>5.506327</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>78.978767</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>8.812841</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Temp     Humidity        Crime            y\n",
       "count  1008.000000  1008.000000  1008.000000  1008.000000\n",
       "mean     36.854106    55.607657     4.516875     0.206349\n",
       "std      14.022719    12.461692     1.347383     0.404885\n",
       "min       9.234639     6.753112     0.881205     0.000000\n",
       "25%      25.630422    46.964145     3.507509     0.000000\n",
       "50%      33.154437    55.707893     4.528937     0.000000\n",
       "75%      48.634513    63.714781     5.506327     0.000000\n",
       "max      78.978767   100.000000     8.812841     1.000000"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df0=df[df['y']==0].sample(800)\n",
    "df1=df[df['y']==1]\n",
    "df_balanced = pd.concat([df0,df1],axis=0)\n",
    "df_balanced.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x2a1f6742c88>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f654ea58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_balanced.hist('y')\n",
    "plt.title(\"Relative frequency of positive and negative classes\\n in the balanced (under-sampled) dataset\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "log_model_balanced = LogisticRegressionCV(cv=5,class_weight='balanced')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(df_balanced.drop('y',axis=1), \n",
    "                                                    df_balanced['y'], test_size=0.30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "scaler=MinMaxScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train = scaler.fit_transform(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegressionCV(Cs=10, class_weight='balanced', cv=5, dual=False,\n",
       "           fit_intercept=True, intercept_scaling=1.0, max_iter=100,\n",
       "           multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,\n",
       "           refit=True, scoring=None, solver='lbfgs', tol=0.0001, verbose=0)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_model_balanced.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.00      0.00      0.00       233\n",
      "          1       0.23      1.00      0.38        70\n",
      "\n",
      "avg / total       0.05      0.23      0.09       303\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Tirtha\\Python\\Anaconda3\\lib\\site-packages\\sklearn\\metrics\\classification.py:1135: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test,log_model_balanced.predict(X_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### I did an experiment with how the degree of under-sampling affects _F1-score_, _precision_, and _recall_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import recall_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_neg = [i for i in range(200,4200,200)]\n",
    "\n",
    "df1=df[df['y']==1]\n",
    "F1_scores=[]\n",
    "precision_scores=[]\n",
    "recall_scores=[]\n",
    "\n",
    "for num in n_neg:\n",
    "    # Create under-sampled data sets\n",
    "    df0=df[df['y']==0].sample(num)\n",
    "    df_balanced = pd.concat([df0,df1],axis=0)\n",
    "    # Create model with 'class_weight=balanced' and 5-fold cross-validation\n",
    "    log_models=LogisticRegressionCV(cv=5,class_weight='balanced')\n",
    "    # Create test/train splits\n",
    "    X_train, X_test, y_train, y_test = train_test_split(df_balanced.drop('y',axis=1), \n",
    "                                                    df_balanced['y'], test_size=0.30)\n",
    "    # Min-max scale the training data\n",
    "    X_train = scaler.fit_transform(X_train)\n",
    "    \n",
    "    # Fit the logistic regression model\n",
    "    log_models.fit(X_train,y_train)\n",
    "    \n",
    "    # Calculate various scores\n",
    "    F1_scores.append(f1_score(y_test,log_models.predict(X_test)))\n",
    "    precision_scores.append(precision_score(y_test,log_models.predict(X_test)))\n",
    "    recall_scores.append(recall_score(y_test,log_models.predict(X_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x2a1f5eba0f0>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f6774828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(n_neg,F1_scores,color='green',edgecolor='black',alpha=0.6,s=100)\n",
    "plt.title(\"F1-score as function of negative samples\")\n",
    "plt.grid(True)\n",
    "plt.ylabel(\"F1-score\")\n",
    "plt.xlabel(\"Number of negative samples\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x2a1f68bfef0>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nypUr0w6hoEqPz73yY1R8pVF8pSklPuAhVzcXIiLSHkoKIiKSoaQgIiIZSgoiIpKhpCAiIhlKCiIi\nkqGkICIiGUoKIiKSoaQgIiIZSgoiIpKhpCAiIhlKCiIikrHT9ZLaXg0NDaxcsZw1q5bRvHkT1X37\nM2bcFCYeN4mamrY7DBQR+SAp65mCmU02s6fNbJ2Zzcsxf4KZbTKzR+Nrfmeuv66ujksvOotd6pdw\n4dTeXHXOEC6c2ptd6pdw6UVnUVdX15mrExHZ6ZUtKZhZT2ARcAIwHJhhZsNzFF3l7h+LrwWdtf6G\nhgYWL5zPOZOrmDZ+CDV79qFHD6Nmzz5MGz+EcyZXsXjhfBoaGjprlSIiO71ynimMAda5+3p3fwdY\nCkwt4/p2sHLFcsYNa+Hgwf1yzj94cD/GDm2h9u67uiokEZGKV7ZnNJvZycBkdz8jjs8CjnT3cxNl\nJgC3ABuAeuACd38ix7LOBM4EGDRo0KilS5e2uf4NLzzLPnsYvXrlz3tbt27nlTecIfsf1J6Plldz\nczPV1dWdsqxyqPT4oPJjVHylUXylKSW+iRMnPuzuo9sql/aF5keA/d292cxOBH4NDMsu5O7XAtcC\njB492idMmNDmgs+edTlXnTOEHj0sb5lt27Zz7i9f4gc/WdbB8HdUW1tLMbGlpdLjg8qPUfGVRvGV\npiviK2f1UT2wX2J8SJyW4e5N7t4ch+8AepvZwM5YeXXf/jRu2lKwzMamFqr79u+M1YmIdAvlTAoP\nAsPM7CAz2wU4FbgtWcDM9jEzi8NjYjyNnbHyMeOmcN/awota/XgjY8ZP6YzViYh0C2VLCu6+FTgX\nWA48Bdzs7k+Y2dlmdnYsdjJQZ2aPAd8HTvVOusgx8bhJrHqmivX1TTnnr69vYvW6KiYce3xnrE5E\npFso6zWFWCV0R9a0qxPDVwJXlmPdNTU1zJm7gEUL5zN26AbGjhzAXv2q2NjUwurHG1m9roo5cxfo\nBjYRkYS0LzSX1YgRI5h3yTXU3n0Xl9+2jObNjeGO5vEzmTf7eCUEEZEs3TopQDhjOGX6aZwy/bS0\nQxERqXjqEE9ERDKUFEREJENJQUREMpQUREQkQ0lBREQylBRERCRDSUFERDKUFEREJENJQUREMpQU\nREQkQ0lBREQylBRERCRDSUFERDKUFEREJENJQUREMpQUREQkQ0lBREQylBRERCRDSUFERDKUFERE\n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\nrAde/aiUIwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f670c278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(n_neg,precision_scores,color='orange',edgecolor='black',alpha=0.6,s=100)\n",
    "plt.title(\"Precision score as function of negative samples\")\n",
    "plt.grid(True)\n",
    "plt.ylabel(\"Precision score\")\n",
    "plt.xlabel(\"Number of negative samples\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x2a1f68f7390>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2a1f696ebe0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(n_neg,recall_scores,color='blue',edgecolor='black',alpha=0.6,s=100)\n",
    "plt.title(\"Recall score as function of negative samples\")\n",
    "plt.grid(True)\n",
    "plt.ylabel(\"Recall score\")\n",
    "plt.xlabel(\"Number of negative samples\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### So, precision goes down rapidly with more negative samples and so does F1-score. Recall is largely unaffected by mixing negative samples with the positive ones."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
